import Vue from 'vue'
import Vuex from 'vuex'
import cacheStore from '@/common/cache'
Vue.use(Vuex)

const store = new Vuex.Store({
	state:{
		token:cacheStore.getStorageSync('token') || '', //token
		userInfo:cacheStore.getStorageSync('userInfo')|| {},//用户对象
		posLive:cacheStore.getStorageSync('setPosition') || {}, //用户定位信息
		serialNumber:-1,//如果为-1或者0那么默认为0
	},
	getters:{
		token:state=>state.token,//获取token
		userInfo:state=>state.userInfo,//获取用户信息
		posLive:state=>state.posLive,//获取用户定位信息
		serialNumber:state=>state.serialNumber,//序号值
	},
	mutations:{
		//序号操作
		setSerialNumber(state,num){
			state.serialNumber = num
		},
		//设置用户的token和用户信息信息
		setUserInfo(state,{user={}}={user:{}}){

			state.userInfo = user

			cacheStore.setStorage('userInfo',user)
		},
		//设置token
		setUserToken(state,{token=''}={token:''}){
			state.token = token
			cacheStore.setStorage('token',token)
		},
		//设置用户定位信息
		setPosition(state,{latitude,longitude} ={latitude:0,longitude:0}){
			state.posLive = {
				latitude,longitude
			}
			cacheStore.setStorage('setPosition',state.posLive)
		}
	},
	actions:{
		//设置用户的token和用户信息信息
		setUserInfo ({commit}, {user = {}}) {
			commit('setUserInfo',{user})
		},
		//设置token
		setUserToken({commit},{token=''}={token:''}){
			commit('setUserToken',{token})
		},
		//设置用户定位信息
		setPosition ({commit}, {latitude, longitude}) {
			commit('setPosition',{latitude, longitude})
		},
	}
})

// 导出该模块:以便其他文件可对其进行使用
export default store
